package club.caihappy.store.mapper;

import club.caihappy.store.entity.Address;

import java.util.Date;
import java.util.List;

/**
 * 收货地址的持久层接口
 * Created by DELL on 2022/3/14
 **/
public interface AddressMapper {

    /**
     * 插入收货地址
     *
     * @param address
     * @return
     */
    Integer insert(Address address);

    /**
     * 根据uid统计收货地址的数量
     *
     * @param uid
     * @return
     */
    Integer countByUid(Integer uid);


    /**
     * 根据用户的Uid查询用户的数据
     *
     * @param uid
     * @return
     */
    List<Address> findByUid(Integer uid);


    /**
     * 根据aid查询收货地址是否存在
     *
     * @param aid
     * @return
     */
    Address findByAid(Integer aid);

    /**
     * 根据uid修改用户所有收获地址为非默认
     *
     * @param uid
     * @return
     */
    Integer updateNonDefault(Integer uid);

    /**
     * 根据aid修改用户收货地址为默认
     *
     * @param aid
     * @param modifiedUser
     * @param modifiedTime
     * @return
     */
    Integer updateDefaultByAid(Integer aid, String modifiedUser, Date modifiedTime);

    /**
     * 根据aid删除收货地址
     *
     * @param aid 收货地址的id
     * @return 受影响的行数
     */
    Integer deleteByAid(Integer aid);

    /**
     * 根据用户uid查询当前用户最后一次被修改的收货地址数据
     *
     * @param uid 用户id
     * @return收货地址数据
     */
    Address findLastModified(Integer uid);

}
